<?php
// =========================================================================
// 📥 ENGINE ASSY: VERIFIKASI TERIMA KUNCI JURNAL STATUS 40 (LPB INTERNAL)
// =========================================================================
ini_set('display_errors', 1); error_reporting(E_ALL);
if (session_status() === PHP_SESSION_NONE) { session_start(); }
if (!isset($_SESSION['username'])) { header("Location: login.php"); exit(); }
include 'config.php';
$user = $_SESSION['username'];

$spb_param = isset($_GET['spb']) ? htmlspecialchars($_GET['spb']) : '';

$stFetch = $pdo->prepare("SELECT twm.*, i.item_code, i.item_name, i.unit FROM t_wip_movements twm JOIN m_items i ON twm.item_id = i.id WHERE twm.spb_number = ? AND twm.status_proses = 'GI WIP'");
$stFetch->execute([$spb_param]);
$items = $stFetch->fetchAll(PDO::FETCH_ASSOC);

if(empty($items)) { die("<h3 style='color:red; padding:20px;'>❌ Alert: Surat Pengantar Barang $spb_param sudah pernah diverifikasi atau tidak valid!</h3>"); }
$head = $items[0];

// =========================================================================
// ⚙️ EXECUTE SAVE LPB: JURNAL STATUS 40 (PROD_IN) DI LINIERJA ASSY AREA [INDEX]
// =========================================================================
if($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action_confirm_lpb_assy'])) {
    try {
        $pdo->beginTransaction();
        
        $lpb_number_new = "LPB-ASSY-" . date('Ymd-His');
        $lpb_date       = $_POST['lpb_date'] ?: date('Y-m-d');

        foreach($items as $row) {
            // 👉 SUNTIK DRAF NOTA MASUK KE t_stock_movements SEBAGAI STATUS 40 (PROD_IN DI WILAYAH ASSY_AREA) [INDEX]
            $sqlIns = "INSERT INTO t_stock_movements (item_id, lot_number, transaction_date, transaction_type, doc_number, lpb_number, location, in_qty, out_qty, status, doc_type, bc_number, bc_date, aju_number, created_by) VALUES (?, 'LOT-ASSY-IN', ?, 'PROD_IN', ?, ?, 'ASSY_AREA', ?, 0, '40', ?, ?, ?, ?, ?)";
            $pdo->prepare($sqlIns)->execute([
                $row['item_id'], $lpb_date, $row['spb_number'], $lpb_number_new, $row['qty_issued'],
                $row['doc_type'], $row['bc_number'], $lpb_date, $row['aju_number'], $user
            ]);
        }

        // Update jembatan inter-movement agar closed [INDEX]
        $pdo->prepare("UPDATE t_wip_movements SET lpb_number = ?, status_proses = 'Verified WIP' WHERE spb_number = ?")->execute([$lpb_number_new, $spb_param]);

        $pdo->commit();
        echo "<script>alert('Sukses Mutlak! Berkas LPB Assy $lpb_number_new Berhasil Dibukukan ke Status 40.'); window.location.href='material_approval_gudang.php';</script>";
        exit;
    } catch(Exception $e) {
        if ($pdo->inTransaction()) $pdo->rollBack();
        die("❌ Gagal Verifikasi LPB: " . $e->getMessage());
    }
}
?>
<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title>Konfirmasi LPB Assy | IT-INV PRO</title>
    <style>
        :root { --bg: #0b1120; --card: #1e293b; --accent: #10b981; --border: rgba(255,255,255,0.06); --text: #94a3b8; }
        body { background: var(--bg); color: #f1f5f9; font-family: sans-serif; padding: 30px; }
        .box { max-width: 900px; margin: auto; background: var(--card); border: 1px solid var(--border); padding: 30px; border-radius: 12px; }
        .input-control { width: 100%; padding: 11px; background: #0f172a; border: 1px solid var(--border); color: #fff; border-radius: 6px; font-weight: bold; }
        table { width: 100%; border-collapse: collapse; margin-top: 15px; font-size: 13px; }
        th { background: rgba(0,0,0,0.2); padding: 10px; color: var(--text); border-bottom: 2px solid var(--border); text-align: left; }
        td { padding: 12px 10px; border-bottom: 1px solid var(--border); }
    </style>
</head>
<body>
<div class="box">
    <h2 style="color:#fff;">📦 Verifikasi Penerimaan Barang di Lini Assy</h2>
    <p style="color:var(--text); font-size:12px; margin-bottom:20px;">Menyerap silsilah SPB menjadi pasokan saldo riil Lini Assembly ber-Status 40 [INDEX].</p>

    <!-- FORM SUBMIT DILENGKAPI SAFETY NOTIF DETIL JAVASCRIPT POP-UP SEBELUM SUBMIT [INDEX] -->
    <form method="POST" action="" onsubmit="return validateAndShowAssyLpbPopupBox();">
        <div style="margin-bottom: 15px;">
            <label style="font-size:11px; font-weight:bold; color:var(--text);">TANGGAL PENERIMAAN LPB ASSY</label>
            <input type="date" id="lpb_date" name="lpb_date" class="input-control" value="<?= date('Y-m-d') ?>">
        </div>

        <table>
            <thead>
                <tr><th>Kode Komponen WIP</th><th>Nama Deskripsi Barang</th><th>Volume Kiriman SPB</th><th>Unit</th></tr>
            </thead>
            <tbody id="lpbItemRowsContainer">
                <?php foreach($items as $it): ?>
                <tr class="item-lpb-row">
                    <td><b style="color:#fff; font-family:monospace;"><?= htmlspecialchars($it['item_code']) ?></b></td>
                    <td class="item-name-cell"><?= htmlspecialchars($it['item_name']) ?></td>
                    <td class="item-qty-cell" style="color:var(--accent); font-weight:bold; font-family:monospace;"><?= number_format($it['qty_issued'], 4) ?></td>
                    <td><?= htmlspecialchars($it['unit']) ?></td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>

        <button type="submit" name="confirm_lpb_assy" class="input-control" style="background:var(--accent); color:#000; font-size:13px; margin-top:25px; cursor:pointer; border:none; font-weight:900;">
            ✅ KONFIRMASI TERIMA BARANG MASUK STATUS 40
        </button>
    </form>
</div>

<script>
// 🎯 INTERACTIVE POP-UP ENGINE: Menjabarkan notif manifest detail sebelum klik kirim [INDEX]
function validateAndShowAssyLpbPopupBox() {
    const tgl = document.getElementById('lpb_date').value;
    let detailText = "";
    
    document.querySelectorAll('.item-lpb-row').forEach(row => {
        const code = row.querySelector('b').innerText;
        const name = row.querySelector('.item-name-cell').innerText;
        const qty = row.querySelector('.item-qty-cell').innerText;
        detailText += `\n• [${code}] ${name} -> Qty: ${qty}`;
    });

    // Meluncurkan jendela konfirmasi berlapis [INDEX]
    const r = confirm(`⚠️ MAKSUD VALIDASI LPB KAWASAN BERIKAT:\n\nApakah Anda yakin ingin membukukan dokumen masuk ke Lini Assy dengan spesifikasi:\n📅 TANGGAL LPB RIIL: ${tgl}\n\n📦 MANIFEST DAFTAR KOMPONENT BARANG:${detailText}\n\nKlik OK untuk mengunci Status 40 pabean!`);
    return r;
}
</script>
</body>
</html>
